package test06.stream.demo02.t07;

import java.util.Optional;
import java.util.stream.Stream;

/**
 * 注意：max 方法和 min 方法中的 Comparator 必须是升序排序
 *
 * @author ZQX
 * @date 2025-04-08
 */
public class MainTest01 {
    public static void main(String[] args) {
        // 第一：定义集合或数组 - 数据源
        Integer[] arr = {1, 7, 8, 2, 3, 6, 9, 4};


        // 第二：创建 Stream 对象
        // Stream<Integer> stream = Stream.of(arr);

        // 第三：调用 API 方法，实现相关的操作 - 延迟方法 + 终结方法
        long count = Stream.of(arr).count();

        // 升序 - max 相当于 findLast
        Optional<Integer> maxOptional = Stream.of(arr).max((o1, o2) -> o1 - o2);
        Integer maxData = maxOptional.orElse(-1);

        Optional<Integer> minOptional = Stream.of(arr).min((o1, o2) -> o2 - o1);
        Integer minData = minOptional.orElse(-1);

        System.out.println("总数：" + count);
        System.out.println("最大值：" + maxData);
        System.out.println("最小值：" + minData);


    }
}
